home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
WD_SRC.ZIP
/
SYSTEM
/
FILE_IO.CPP
< prev
next >
Wrap
C/C++ Source or Header
|
1994-12-31
|
2KB
|
124 lines
#include "..\Source\Lastwolf.hpp"
MFile::MFile()
{
fileHandle = -1;
bFileOpen = FALSE;
}
MFile::~MFile()
{
if( bFileOpen )
close(fileHandle);
}
MFile &MFile::operator=(MFile ©From)
{
bFileOpen = copyFrom.bFileOpen;
fileHandle = copyFrom.fileHandle;
return *this;
}
BOOL MFile::fio_OpenSource( const char *p_SourceFilename, char ReadOrWrite )
{
if( toupper(ReadOrWrite) == 'R' )
fileHandle = open( p_SourceFilename, O_RDONLY | O_BINARY );
else
fileHandle = open( p_SourceFilename, O_WRONLY | O_BINARY );
if( fileHandle == -1 )
return FALSE;
bFileOpen = TRUE;
// Store the filename.
strncpy( fileName, p_SourceFilename, 256 );
// Get the length of the file.
lseek( fileHandle, 0, SEEK_END );
fileLength = tell( fileHandle );
lseek( fileHandle, 0, SEEK_SET );
return TRUE;
}
BOOL MFile::fio_CloseSource()
{
if( !bFileOpen )
return FALSE;
close(fileHandle);
bFileOpen = FALSE;
return TRUE;
}
BYTE MFile::fio_ReadByte()
{
char byteRead;
if( !bFileOpen )
return -1;
read( fileHandle, &byteRead, 1 );
return byteRead;
}
BOOL MFile::fio_Read( void *p_Buffer, DWORD size )
{
if( !bFileOpen )
return FALSE;
read( fileHandle, p_Buffer, size );
return TRUE;
}
BOOL MFile::fio_Write( void *p_Buffer, DWORD size )
{
if( !bFileOpen )
return FALSE;
write( fileHandle, p_Buffer, size );
return TRUE;
}
BOOL MFile::fio_Seek( DWORD seekPos )
{
if( !bFileOpen )
return FALSE;
if( lseek( fileHandle, seekPos, SEEK_SET ) == -1 )
return FALSE;
else
return TRUE;
}
DWORD MFile::fio_GetPosition()
{
if( !bFileOpen )
return -1;
return tell( fileHandle );
}
DWORD MFile::fio_FileLength()
{
return fileLength;
}